package com.vichat.business.service;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.vichat.business.entity.DistrictFence;
import com.vichat.business.entity.DistrictFenceRule;
import com.vichat.business.entity.DistrictFenceUser;
import com.vichat.business.vo.FenceVO;
import com.vichat.common.cache.RedisHelper;
import com.vichat.common.exception.ViChatException;
import com.vichat.common.vo.PageFilter;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface IDistrictFenceService {

    public DistrictFence getDistrictFenceByfenceId(long fenceId);

    public DistrictFenceUser getDistrictFenceUserById(long id, long fenceId);

    public DistrictFence queryDistrictFenceByfenceId(long partyId, long fenceId);

    public void saveFence(FenceVO fenceVO) throws ViChatException;

    public void saveDistrictFence(DistrictFence districtFence) throws ViChatException;

    public void saveDistrictFenceUser(long partyId, DistrictFenceUser queryBean);

    public DistrictFenceRule saveDistrictFenceRule(long partyId, DistrictFenceRule queryBean) throws ViChatException;

    public List<DistrictFence> queryDistrictFences(DistrictFence queryBean, PageFilter pf);

    public Long countDistrictFences(DistrictFence queryBean);

    public List<DistrictFenceRule> queryDistrictFenceRules(DistrictFenceRule queryBean, PageFilter pf);

    public Long countDistrictFenceRules(DistrictFenceRule queryBean);

    public List<DistrictFenceUser> queryDistrictFenceUsers(DistrictFenceUser queryBean, PageFilter pf);

    public Long countDistrictFenceUsers(DistrictFenceUser queryBean);

    public void deleteFence(long fenceId) throws ViChatException;

    public void deleteFenceUser(long partyId, long fenceId, long id, long type) throws ViChatException;

    public void deleteFenceRule(long partyId, long ruleId) throws ViChatException;

    public void updateFenceUserRedis(long partyId, long fenceId);

    public void updateFenceRuleRedis(long partyId, long fenceId);

    public void deleteFenceUserByFenceId(long fenceId, long type);
}